package com.example.thirdjarlearningcore.annotation;

import java.lang.annotation.*;

/**
 * 自定义的注解。被标注的类将被动态注册为Bean
 * 由于注解作用在类头上，因此@Target中的作用域是 Type
 * 这个注解必须在运行时可获取，否则是无法动态获取并注册为Bean的，因此@retention 中的生命周期为 RUNTIME
 * 剩下的 @Document 则无所谓
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ThirdJarCotAsBean {
    /**
     * 注解两个属性值。
     * 分别是这个类被注册为Bean的beanName、是否以单例模式注册
     */
    String beanName() default "";
    boolean isSingleton() default true;
}
